import java.io.UnsupportedEncodingException;

public class _01_01_EncodeDemo {
    /**
     * 文件编码格式
     */

    public static void main(String[] args) throws UnsupportedEncodingException {
        String str = "景航教育ABC";
        byte[] bytes = str.getBytes();//转换为字节序列用的是项目默认的编码格式,默认编码格式为UTF-8
        for (byte b : bytes) {
            //把字节(转换成Int)以16进制的方式显示
           // UTF-8 中文占3个字节,英文占1个字节
            System.out.print(Integer.toHexString(b & 0xff) + " ");
        }
        System.out.println();

        byte[] bytes1 = str.getBytes("GBK");//指定转换为的编码格式
        for (byte b : bytes1) {
            //GBK    中文占2个字节,英文占1个字节
            System.out.print(Integer.toHexString(b & 0xff) + " ");
        }

        System.out.println();

        //java是双字节编码 utf-16be
        byte[] bytes2 = str.getBytes("UTF-16be");
        for (byte b : bytes2) {
            //utf-16be编码格式中 中文占用2个字节,英文占2个字节
            System.out.print(Integer.toHexString(b & 0xff) + " ");
        }

        System.out.println();

        /**
         * 当你的字节序列是某种编码格式时,这个时候想要把字节序列变成
         * 字符串,也许要用这种编码方式,否则会出现乱码
         */
        String str1 = new String(bytes2);//用项目默认的编码格式
        System.out.println(str1);
        //创建的时候用的什么样编码格式,输出的时候转换成什么样的编码格式
        String str2 = new String(bytes,"utf-8");
        System.out.println(str2);

        /**
         * 文本文件  就是字节序列
         * 可以是任意编码的字节序列
         * 如果我们在中文机器上直接创建文本文件,那么该文本文件只认识ansi编码格式
         */


    }
}
